<?php

/**
 * producto actions.
 *
 * @package    cronos-doctrine
 * @subpackage producto
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class estrateguiaActions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
   
      //llamado a los usuarios del Sistema
      $estrategias = new Estrategia();
      $this->estrategias = $estrategias->getEstrategias();
      
      /*$llamada_estrategias = new LlamadaEstrategia();
      $this->llamada_estrategias = $llamada_estrategias->getLlamadaEstrategias();
      */
      

    }
    
    
    
    
   public function executeEstrategia(sfWebRequest $request)
    {
   
      if(($request->getParameter('estrategia_id'))||($request->getParameter('agente'))){
      
      $usuariosAgentes = new SfGuardUser();
      $estrategia = new Estrategia();
      $estrategiaDetalle = new EstrategiaHasUsuario();
      
      if($request->getParameter('agente')){
        
        $this->estrategiaBd = $estrategia->getEstrategiaFecha();
        $this->estrategia_id = $this->estrategiaBd->getId();
        $this->agenteActivo = $this->getUser()->getGuardUser()->getId();
        $this->usuariosAgentes = $usuariosAgentes->getAgente($this->agenteActivo);
        $this->estrategiaDetalle = $estrategiaDetalle->getEstrategiaHasUsuariosAgente($this->estrategia_id,$this->agenteActivo);
        
        
      }else{
      
          
        //llamado a los usuarios del Sistema
      
        $this->usuariosAgentes = $usuariosAgentes->getAgentesCC();
        $this->estrategia_id = $request->getParameter('estrategia_id');
        $this->estrategiaBd = $estrategia->getEstrategiaId($this->estrategia_id);
        $this->estrategiaDetalle = $estrategiaDetalle->getEstrategiaHasUsuarios($this->estrategia_id);
          
      }
      
      //llamado a los tipos de servicios
      $categoria = new Categoria();
      $this->servicios = $categoria->getCategoriaPadre()->execute();
      
      //llamado a los tipos de servicios
      $llamadasEstartegias = new LlamadaEstrategia();
      $this->llamadasEstartegias = $llamadasEstartegias->getLlamadaEstrategias();
      
      



      
      }else{
          
          $this->redirect('/estrateguia/index');
          
      }
      
        
      
      
    }
    
    public function executeAutomatico(sfWebRequest $request)
    {
        
       
      //fecha incial la del dia
        $this->Option = $request->getParameter('Option');
        $this->servicioId = $request->getParameter('servicioId');
        
      
      
//-------DE AYER - 3 MESES
      
      
      
      if($this->Option == 1){
          
          
          
           $this->consulta = Doctrine_Query::create()
                            ->select('ag.usuario_id, max(ag.id) as agendado_int,ag.agendado_status_id,max(ag.fecha_asig) as fecha_asig_int')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = ag.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(llss.id) from LlamadaProgramada llss where llss.llamada_id IS NULL and llss.usuario_id = ag.usuario_id and llss.categoria_id = '.$this->servicioId.' GROUP BY llss.usuario_id  ORDER BY llss.id DESC LIMIT 0 , 1) as llamada_programada_int')
                            ->addSelect('(SELECT max(llss1.fecha) from LlamadaProgramada llss1 where llss1.llamada_id IS NOT NULL and llss1.usuario_id = ag.usuario_id and llss1.categoria_id = '.$this->servicioId.' GROUP BY llss1.usuario_id  ORDER BY llss1.id DESC LIMIT 0 , 1) as fecha_ultima_llamada')
                            ->from('Agendado ag')
                            ->where('ag.id = (SELECT max(ags.id) from Agendado ags where ags.usuario_id = ag.usuario_id and ags.servicio_tipo_id = '.$this->servicioId.')')
                            ->addWhere('ag.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('ag.usuario_id')
                            ->orderBy('ag.usuario_id asc');
           
                    $this->consulta->andWhere('ag.servicio_tipo_id = '.$this->servicioId);
                    $this->consulta->andWhere('ag.agendado_status_id = 4');
                    $this->consulta->addHaving('llamada_programada_int is null');
                    $this->consulta->addHaving('fecha_ultima_llamada < fecha_asig_int');
          
         $this->rango_total = $request->getParameter('rango_total')+0;
         $this->result = $this->consulta->execute();
         
         
          
      }elseif($this->Option == 2){
          
          $this->consulta = Doctrine_Query::create()
                            ->select('llmada.usuario_id,max(llmada.id) as llamada_int,max(llmada.fecha) as fecha_int,')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = llmada.usuario_id) as ordenado')
                            ->from('LlamadaProgramada llmada')
                            ->where('llmada.id = (SELECT max(llmadas.id) from LlamadaProgramada llmadas where llmadas.usuario_id = llmada.usuario_id and llmadas.cita_telefonica is not null and llmadas.llamada_id is null and llmadas.categoria_id = '.$this->servicioId.')')
                            ->addWhere('llmada.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('llmada.usuario_id')
                            ->orderBy('llmada.usuario_id asc');
          
         $this->rango_total = $request->getParameter('rango_total')+0;
         $this->consulta->addHaving('fecha_int ="'.date('Y-m-d').'"');
         
         $this->result = $this->consulta->execute();
         
          
      }elseif($this->Option == 3){
        
          
          $perio = 1;
          
          $fecha_inicial = $request->getParameter('fecha_inicial');
          $fecha_final = $fecha_inicial;
          
      }elseif($this->Option == 4){
          $perio = 1;
          
        $fecha_inicial = $request->getParameter('fecha_inicial');
          //Fecha Inicial de la siguiente Periodicidad de fecha actual +1 > hasta 3 meses
        $fecha_inicial = strtotime ( '-1 day' , strtotime ( $fecha_inicial ) ) ;
        $fecha_inicial = date ( 'Y-m-d' , $fecha_inicial );

        $fecha_final = strtotime ( '-3 month' , strtotime ( $fecha_inicial ) ) ;
        $fecha_final = date ( 'Y-m-d' , $fecha_final );
          
          
      }elseif($this->Option == 5){
         
          
           $this->consulta = Doctrine_Query::create()
                            ->select('llmada.usuario_id,max(llmada.id) as llamada_int,max(llmada.fecha) as fecha_int,')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = llmada.usuario_id) as ordenado')
                            ->from('LlamadaProgramada llmada')
                            ->where('llmada.id = (SELECT max(llmadas.id) from LlamadaProgramada llmadas where llmadas.usuario_id = llmada.usuario_id and llmadas.cita_telefonica is null and llmadas.llamada_id is null and llmadas.categoria_id = '.$this->servicioId.')')
                            ->addWhere('llmada.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('llmada.usuario_id')
                            ->orderBy('llmada.usuario_id asc');
       $this->consulta->addHaving('fecha_int ="'.date('Y-m-d').'"');
           $this->result = $this->consulta->execute();       
          
          
      }elseif($this->Option == 9){
      
          $perio = 1;
       $fecha_inicial = $request->getParameter('fecha_inicial');
          //Fecha Inicial de la siguiente Periodicidad de fecha actual +1 > hasta 3 meses
        $fecha_inicial = strtotime ( '-1 day' , strtotime ( $fecha_inicial ) ) ;
        $fecha_inicial = date ( 'Y-m-d' , $fecha_inicial );

        $fecha_final = strtotime ( '-3 month' , strtotime ( $fecha_inicial ) ) ;
        $fecha_final = date ( 'Y-m-d' , $fecha_final );
        
          
        //-------DE AYER - 6 MESES
        //Fecha Inicial de la siguiente Periodicidad de fecha actual +1 > hasta 3 meses
        $fecha_inicial = strtotime ( '-1 day' , strtotime ( $fecha_final ) ) ;
        $fecha_inicial = date ( 'Y-m-d' , $fecha_inicial );

        $fecha_final = strtotime ( '-3 month' , strtotime ( $fecha_inicial ) ) ;
        $fecha_final = date ( 'Y-m-d' , $fecha_final );
      
          
      }elseif($this->Option == 10){
      $perio = 1;
        
          $fecha_inicial = $request->getParameter('fecha_inicial');
          //Fecha Inicial de la siguiente Periodicidad de fecha actual +1 > hasta 3 meses
        $fecha_inicial = strtotime ( '-1 day' , strtotime ( $fecha_inicial ) ) ;
        $fecha_inicial = date ( 'Y-m-d' , $fecha_inicial );

        $fecha_final = strtotime ( '-3 month' , strtotime ( $fecha_inicial ) ) ;
        $fecha_final = date ( 'Y-m-d' , $fecha_final );
        
          
        //-------DE AYER - 6 MESES
        //Fecha Inicial de la siguiente Periodicidad de fecha actual +1 > hasta 3 meses
        $fecha_inicial = strtotime ( '-1 day' , strtotime ( $fecha_final ) ) ;
        $fecha_inicial = date ( 'Y-m-d' , $fecha_inicial );

        $fecha_final = strtotime ( '-3 month' , strtotime ( $fecha_inicial ) ) ;
        $fecha_final = date ( 'Y-m-d' , $fecha_final );
        
        
          
        $periodicidadUlt = Doctrine_Query::create()
                             ->from('UsuarioHasAgendado us')
                             ->orderBy('us.fecha_asig ASC')->fetchOne();
      
      
        $fecha_inicial = strtotime ( '+3 month' , strtotime ( $periodicidadUlt->getFechaAsig() ) ) ;
        
        $fecha_inicial = date ( 'Y-m-d' , $fecha_inicial );
        if($fecha_inicial>$fecha_final){
            $fecha_inicial = $fecha_final;
        }
      
        
        $fecha_final = $periodicidadUlt->getFechaAsig();
        
          
      }
      
      
      if($perio==1){
      
      $this->result = Doctrine_Query::create()
                             ->from('UsuarioHasAgendado us')
                             ->where('us.fecha_asig >="'.$fecha_final.'"')
                             ->addWhere('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                             ->addWhere('us.fecha_asig <="'.$fecha_inicial.'"')
                             ->addWhere('us.categoria_id =?',$this->servicioId)->execute();
      
      }
      
      
      $this->setTemplate('result');
      
        
    }
    
    
        //Formulario para la creacion de un Nuevo Periodicidad
        public function executeNewEstrategia(sfWebRequest $request)
        {
            //Arma Formulario Periodicidad para el usuario en cuestion
            $this->form = new EstrategiaForm();
            
            $this->form->setWidget('gerente_id', new sfWidgetFormInputHidden(array(),array('value' => $this->getUser()->getGuardUser()->getId())));  
        }
    
  
        public function executeCreateEstrategia(sfWebRequest $request)
        {
            //Redirecciona a la pagina de no encontrada
            $this->forward404Unless($request->isMethod(sfRequest::POST));

            //Crea un Nuevo Formulario para Telefono
            $this->form = new EstrategiaForm();
            $this->form->setWidget('gerente_id', new sfWidgetFormInputHidden(array(),array('value' => $this->getUser()->getGuardUser()->getId())));  

            //Reenvio Variable para el Procesado del Formulario
            $this->processForm($request, $this->form);
            $this->setTemplate('newEstrategia');
        }
    
    
     //Funcion para el procesamiento o guardado del Formulario y Objeto Telefono
        protected function processForm(sfWebRequest $request, sfForm $form)
        {
            $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
            if ($form->isValid())
            {
            
                $form->save();
                

            $this->redirect('/estrateguia/index');
            
            }
        }


    public function executeOption(sfWebRequest $request)
    {
   
        //Nombre de la ventana de Informacion
        $this->Option = $request->getParameter('Option');
        $this->userId = $request->getParameter('userId');
        
        
        
        $this->optionNombre = str_replace('<>','', str_replace('<br>','',$request->getParameter('optionNombre')));
        $this->servicioNombre = $request->getParameter('servicioNombre');
        $this->servicioId = $request->getParameter('servicioId');
        
        $this->filtro = new UsuarioFormFilter($this->getUser()->getAttribute('usuario_filters'));
        
        
           if($this->Option == 11){
                     
                     $this->consulta = Doctrine_Query::create()
                            ->select('llamserv.usuario_id')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = llamserv.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(ag.usuario_id) from Agendado ag, Servicio ser where ag.usuario_id = llamserv.usuario_id and ag.id=ser.agendado_id and ser.servicio_tipo_id = '.$this->servicioId.' LIMIT 0 , 1) as agendado')
                            ->from('LlamadaServicio llamserv')
                            ->where('llamserv.categoria_id  = '.$this->servicioId)
                            ->addWhere('llamserv.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('llamserv.usuario_id');
                     
                     $this->consulta->having('agendado is null');
                     
           }else
           if($this->Option == 12){
                     
                      $this->consulta = Doctrine_Query::create()
                            ->select('ag.usuario_id, max(ag.id) as agendado_int,ag.agendado_status_id,max(ag.fecha_asig) as fecha_asig_int')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = ag.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(llss.id) from LlamadaProgramada llss where llss.llamada_id IS NULL and llss.usuario_id = ag.usuario_id and llss.categoria_id = '.$this->servicioId.' GROUP BY llss.usuario_id  ORDER BY llss.id DESC LIMIT 0 , 1) as llamada_programada_int')
                            ->addSelect('(SELECT max(llss2.llamada_status_id) from LlamadaProgramada llss1,LLamada llss2 where llss1.llamada_id=llss2.id and llss1.llamada_id IS NOT NULL and llss1.usuario_id = ag.usuario_id and llss1.categoria_id = '.$this->servicioId.' GROUP BY llss1.usuario_id  ORDER BY llss1.id DESC LIMIT 0 , 1) as llamada_programada_resp_int')
                            ->addSelect('(SELECT max(per.usuario_id) from LlamadaServicio per  where per.usuario_id=ag.usuario_id  and per.categoria_id = '.$this->servicioId.' GROUP BY per.usuario_id  LIMIT 0 , 1) as periodicidad')
                            ->from('Agendado ag')
                            ->where('ag.id = (SELECT max(ags.id) from Agendado ags where ags.usuario_id = ag.usuario_id )')
                            ->addWhere('ag.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('ag.usuario_id')
                            ->orderBy('ag.usuario_id asc');;
                    
                     
                     $this->consulta->having('ag.agendado_status_id = 5');
                     $this->consulta->having('periodicidad is null');
                     
                     //Reviso si tiene llamadas activas para servicios
                     $this->consulta->addHaving('llamada_programada_int is null');
                     $this->consulta->addHaving('llamada_programada_resp_int <> 3');
                     
                     $this->consulta->leftJoin('ag.Servicio ser');
                     $this->consulta->andWhere('ser.servicio_tipo_id = '.$this->servicioId);
                    
                     
           }else
           if($this->Option == 13){
                    
               
                      $this->consulta = Doctrine_Query::create()
                            ->from('UsuarioHasServicio us')
                            ->where('us.llamada_status_id = 2')
                            ->addWhere('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->addWhere('us.categoria_id='.$this->servicioId)
                            ->addWhere('us.depuracion <>1');
                     
                      
                     
           }else
           if($this->Option == 14){
                     
                    $this->consulta = Doctrine_Query::create()
                            ->from('UsuarioHasServicio us')
                            ->where('us.llamada_status_id = 4')
                            ->addWhere('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->addWhere('us.categoria_id='.$this->servicioId)
                            ->addWhere('us.depuracion <>1');
               
                    
                     
           }else
           if($this->Option == 15){
                     
               $this->consulta = Doctrine_Query::create()
                            ->from('UsuarioHasServicio us')
                            ->where('us.llamada_status_id = 3')
                            ->addWhere('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->addWhere('us.categoria_id='.$this->servicioId)
                            ->addWhere('us.depuracion <>1');
               
               
                    
                     
           }else
           if($this->Option == 16){
                     
                      $this->consulta = Doctrine_Query::create()
                            ->select('ag.usuario_id, max(ag.id) as agendado_int,ag.agendado_status_id,max(ag.fecha_asig) as fecha_asig_int')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = ag.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(llss.id) from LlamadaProgramada llss where llss.llamada_id IS NULL and llss.usuario_id = ag.usuario_id and llss.categoria_id = '.$this->servicioId.' GROUP BY llss.usuario_id  ORDER BY llss.id DESC LIMIT 0 , 1) as llamada_programada_int')
                            ->addSelect('(SELECT max(llss2.llamada_status_id) from LlamadaProgramada llss1,LLamada llss2 where llss1.llamada_id=llss2.id and llss1.llamada_id IS NOT NULL and llss1.usuario_id = ag.usuario_id and llss1.categoria_id = '.$this->servicioId.' GROUP BY llss1.usuario_id  ORDER BY llss1.id DESC LIMIT 0 , 1) as llamada_programada_resp_int')
                            ->from('Agendado ag')
                            ->where('ag.id = (SELECT max(ags.id) from Agendado ags where ags.usuario_id = ag.usuario_id )')
                            ->addWhere('ag.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('ag.usuario_id')
                            ->orderBy('ag.usuario_id asc');;
                    
                     
                     
                     //Reviso si tiene llamadas activas para servicios
                     $this->consulta->addHaving('llamada_programada_int is null');
                     $this->consulta->addHaving('llamada_programada_resp_int is null');
                     
                     $this->consulta->leftJoin('ag.Servicio ser');
                     $this->consulta->andWhere('ser.servicio_tipo_id = '.$this->servicioId);
                    
                     
           }else
           if($this->Option == 17){
                     
                      $this->consulta = Doctrine_Query::create()
                            ->select('us.id,us.id  as usuario_ids')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = us.id) as ordenado')
                            ->addSelect('(SELECT count(masc.id) from Mascota masc where masc.usuario_id = us.id GROUP BY masc.usuario_id) as mascota')
                            ->from('Usuario us')
                            ->where('us.depuracion<>1')
                            ->addWhere('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->having('mascota is null');
                      
                      
           }
           
           $resultado = 0;
           
           if(($this->Option>=11)&&($this->Option<=17)){
               
                    $this->result = $this->consulta->execute();
           
           }
           
           
           
           
      
   }
   
   
   public function fechaCambio($fecha){
       
       $fecha = explode('-',$fecha);
       $fecha = $fecha[2].'-'.$fecha[1].'-'.$fecha[0];
       return ($fecha);
       
   }
   
   public function msort($array, $key, $sort_flags = SORT_REGULAR) {
    if (is_array($array) && count($array) > 0) {
        if (!empty($key)) {
            $mapping = array();
            foreach ($array as $k => $v) {
                $sort_key = '';
                if (!is_array($key)) {
                    $sort_key = $v[$key];
                } else {
                    // @TODO This should be fixed, now it will be sorted as string
                    foreach ($key as $key_key) {
                        $sort_key .= $v[$key_key];
                    }
                    $sort_flags = SORT_STRING;
                }
                $mapping[$k] = $sort_key;
            }
            asort($mapping, $sort_flags);
            $sorted = array();
            foreach ($mapping as $k => $v) {
                $sorted[] = $array[$k];
            }
            return $sorted;
        }
    }
        return $array;
    }
   
    
   public function valIndex($indice,$count){
        
                    //validacion de arreglo de agentes 
                    if(($indice >= 0)&&($indice < $count-1)){
                        $indice++;
                    }else{
                        $indice = 0;
                    }
        
        return $indice;
    }
   
   public function executeSaveEstrategia(sfWebRequest $request)
    {
        $estrategia_id = $request->getParameter('estrategia_id');
        $usuarios      = explode(',',$request->getParameter('usuario_filters'));
        $agentes_id    = explode(',',$request->getParameter('agentes_id'));
        
        $estrategia = new Estrategia();
        $estrategiaBd = $estrategia->getEstrategiaId($estrategia_id);
        
        
        $ordenados = Doctrine_Query::create()                  
                          ->from('Usuario us')
                          ->where('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                          ->leftJoin('us.Parroquia prr ON prr.id = us.parroquia_id')
                          ->leftJoin('prr.Zona zz ON zz.id = prr.zona_id')
                          ->orderBy('zz.nombre')
                          ->addOrderBy('prr.nombre')
                          ->groupBy('us.parroquia_id')
                          ->execute();
        
        
        
        // Guardo los resultados de las parroquias dentro de un arreglo
        $parroquias = array();
        foreach ($ordenados as $ordenado){    
            //echo $ordenado->getParroquia()->getZona()->getNombre().'='.$ordenado->getParroquia()."<br>";
            $parroquias[$ordenado->getParroquiaId()] = array('zona'=>''.$ordenado->getParroquia()->getZona()->getNombre().'','parroquia'=>''.$ordenado->getParroquia().'');
        }


        
        
        $usuariosArray = array();

        /**/
        foreach ($usuarios as $usuario){

                if(!empty($usuario)){

                    $user = explode('_',$usuario);


                    if((isset($parroquias[$user[0]]) ? true : false)==true){
                        $zona    = $parroquias[$user[0]]['zona'];
                        $user[0] = $parroquias[$user[0]]['parroquia'];

                    }
                     
                    
                    //echo $user[2]."<br>";
                    $usuariosArray[]= array('zona'=>''.$zona.'',
                                            'parroquia'=>''.$user[0].'',
                                            'usuario'=>''.$user[1].'',
                                            'llamada_estrategia'=>''.$user[2].'',
                                            'servicio_tipo'=>''.$user[3].'',
                                            'estrategia_id'=>''.$estrategia_id.'',
                                            'agente_id'=>'NULL'
                                        );


                }
        }

        $usuariosArray = $this->msort($usuariosArray, array('llamada_estrategia','servicio_tipo','zona', 'parroquia'));
        
        
        
        foreach ($agentes_id as $agente){
            
            if(!empty($agente)){
                    
                    $agent = explode('_',$agente);
                    ${"agentesArray".$agent[1]}[]= array(
                                                    'agente_id'=>''.$agent[2].'',
                                                    'agente_val'=>''.$agent[3].''
                                                    );

            }
        }
        
        
            $a =0;
            $indice = 0;
            $delete = array();
            
            
            foreach($usuariosArray as $valor) {
                
                    
                    $count = count(${"agentesArray".$valor['llamada_estrategia']});
                    
                    
                    if(isset(${"agentesArray".$valor['llamada_estrategia']}[$indice]['agente_id'])){
                        
                     $valor['agente_id'] = ${"agentesArray".$valor['llamada_estrategia']}[$indice]['agente_id'];
                     
                     //echo $valor['usuario']."-<br>";
                     
                    /**/
                     
                     $estrateguia_asig = new EstrategiaHasUsuario();
                     $estrateguia_asig->setEmpresaId($this->getUser()->getAttribute('agente_user_empresa_id'));
                     $estrateguia_asig->setServicioTipoId($valor['servicio_tipo']);
                     $estrateguia_asig->setEstrategiaId($valor['estrategia_id']);
                     $estrateguia_asig->setLlamadaEstrategiaId($valor['llamada_estrategia']);
                     $estrateguia_asig->setAgenteId($valor['agente_id']);
                     $estrateguia_asig->setUsuarioId($valor['usuario']);
                     $estrateguia_asig->setFecha($estrategiaBd->getFecha());
                     $estrateguia_asig->save();
                     
                    
                    //resto uno de los valores*/
                    ${"agentesArray".$valor['llamada_estrategia']}[$indice]['agente_val'] = intval(${"agentesArray".$valor['llamada_estrategia']}[$indice]['agente_val'] - 1);
                    
                    
                    if(${"agentesArray".$valor['llamada_estrategia']}[$indice]['agente_val']==0)
                       ${"delete".$valor['llamada_estrategia']}[] = $indice;
                    }
                    
                    if($indice == $count-1){
                        
                        foreach (${"delete".$valor['llamada_estrategia']} as $del) unset(${"agentesArray".$valor['llamada_estrategia']}[$del]);
                        unset(${"delete".$valor['llamada_estrategia']});
                        sort(${"agentesArray".$valor['llamada_estrategia']});
                        $indice = 0;
                        
                        
                    }else{
                        
                        $indice =  $this->valIndex($indice,$count);
                        
                    }
                        
                    
                    
                    
            }
            
                         
      
    }
   
   public function executeResult(sfWebRequest $request)
    {
   
           $filtros      = $request->getParameter('usuario_filters');
           $this->Option = $request->getParameter('Option');
           $this->servicioId = $request->getParameter('servicioId');
           
           $this->userId = $request->getParameter('userId');
           
           
           
           $set          = 0;
           
           
           if(($this->Option == 1)||($this->Option == 3)||($this->Option == 4)||($this->Option == 9)||($this->Option == 10)){
           
                     $this->consulta = Doctrine_Query::create()
                            ->select('ag.usuario_id, max(ag.id) as agendado_int,ag.agendado_status_id,max(ag.fecha_asig) as fecha_asig_int')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = ag.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(llss.id) from LlamadaProgramada llss where llss.llamada_id IS NULL and llss.usuario_id = ag.usuario_id and llss.categoria_id = '.$this->servicioId.' GROUP BY llss.usuario_id  ORDER BY llss.id DESC LIMIT 0 , 1) as llamada_programada_int')
                            ->addSelect('(SELECT max(llss2.llamada_status_id) from LlamadaProgramada llss1,LLamada llss2 where llss1.llamada_id=llss2.id and llss1.llamada_id IS NOT NULL and llss1.usuario_id = ag.usuario_id and llss1.categoria_id = '.$this->servicioId.' GROUP BY llss1.usuario_id  ORDER BY llss1.id DESC LIMIT 0 , 1) as llamada_programada_resp_int')
                            ->from('Agendado ag')
                            ->where('ag.id = (SELECT max(ags.id) from Agendado ags where ags.usuario_id = ag.usuario_id and ags.servicio_tipo_id = '.$this->servicioId.')')
                            ->addWhere('ag.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('ag.usuario_id')
                            ->orderBy('ag.usuario_id asc');
                     
           }
           if($this->Option == 1){
               
               
                    $this->consulta->andWhere('ag.servicio_tipo_id = '.$this->servicioId);
                    $this->consulta->andWhere('ag.agendado_status_id = 4');
                    $this->consulta->addHaving('llamada_programada_int is null');

                    if((!empty($filtros['agendado_estetica_desde']['text'])) && (!empty($filtros['agendado_estetica_hasta']['text']))){

                            $this->consulta->addHaving('fecha_asig_int >= "'.$this->fechaCambio($filtros['agendado_estetica_desde']['text']).' 00:00:00"');
                            $this->consulta->addHaving('fecha_asig_int <= "'.$this->fechaCambio($filtros['agendado_estetica_hasta']['text']).' 00:00:00"');

                    }else

                    if( (!empty($filtros['agendado_nutricion_desde']['text'])) && (!empty($filtros['agendado_nutricion_hasta']['text']))){

                            $this->consulta->addHaving('fecha_asig_int >= "'.$this->fechaCambio($filtros['agendado_nutricion_desde']['text']).' 00:00:00"');
                            $this->consulta->addHaving('fecha_asig_int <= "'.$this->fechaCambio($filtros['agendado_nutricion_hasta']['text']).' 00:00:00"');

                    }else

                    if((!empty($filtros['agendado_veterinario_desde']['text'])) && (!empty($filtros['agendado_veterinario_hasta']['text']))){

                            $this->consulta->addHaving('fecha_asig_int >= "'.$this->fechaCambio($filtros['agendado_veterinario_desde']['text']).' 00:00:00"');
                            $this->consulta->addHaving('fecha_asig_int <= "'.$this->fechaCambio($filtros['agendado_veterinario_hasta']['text']).' 00:00:00"');

                    }

                    
                    

               
               
           }else
           if($this->Option == 2){
                
               
                    $this->consulta = Doctrine_Query::create()
                            ->select('llmada.usuario_id,max(llmada.id) as llamada_int,max(llmada.fecha) as fecha_int,')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = llmada.usuario_id) as ordenado')
                            ->from('LlamadaProgramada llmada')
                            ->where('llmada.id = (SELECT max(llmadas.id) from LlamadaProgramada llmadas where llmadas.usuario_id = llmada.usuario_id and llmadas.cita_telefonica is not null and llmadas.llamada_id is null and llmadas.categoria_id = '.$this->servicioId.')')
                            ->addWhere('llmada.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('llmada.usuario_id')
                            ->orderBy('llmada.usuario_id asc');
                    
                    
                    
                    if((!empty($filtros['cita_estetica_desde']['text'])) && (!empty($filtros['cita_estetica_hasta']['text']))){
                            
                            $this->consulta->addHaving('fecha_int >="'.$this->fechaCambio($filtros['cita_estetica_desde']['text']).'"');
                            $this->consulta->addHaving('fecha_int <="'.$this->fechaCambio($filtros['cita_estetica_hasta']['text']).'"');
                            
                    }else
                    
                    if((!empty($filtros['cita_nutricion_desde']['text'])) && (!empty($filtros['cita_nutricion_hasta']['text']))){
                            
                            $this->consulta->addHaving('fecha_int >="'.$this->fechaCambio($filtros['cita_nutricion_desde']['text']).'"');
                            $this->consulta->addHaving('fecha_int <="'.$this->fechaCambio($filtros['cita_nutricion_hasta']['text']).'"');
                            
                    }else
                    
                    if((!empty($filtros['cita_veterinario_desde']['text'])) && (!empty($filtros['cita_veterinario_hasta']['text']))){
                            
                            $this->consulta->addHaving('fecha_int >="'.$this->fechaCambio($filtros['cita_veterinario_desde']['text']).'"');
                            $this->consulta->addHaving('fecha_int <="'.$this->fechaCambio($filtros['cita_veterinario_hasta']['text']).'"');
                            
                    }
                            
           }
           if($this->Option == 6){
               
                    
                     
                    $this->consulta = Doctrine_Query::create()
                            ->select('ag.usuario_id, count(ag.id) as total_agendado,max(ag.fecha_asig) as fecha_asig_int')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = ag.usuario_id) as ordenado')
                            //->addSelect('(SELECT count(agss.id) from Agendado agss where llss.llamada_id IS NULL and llss.usuario_id = ag.usuario_id and llss.categoria_id = '.$this->servicioId.' GROUP BY llss.usuario_id ) as total_agendado')
                            
                            ->from('Agendado ag')
                            ->where('ag.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('ag.usuario_id')
                            ->orderBy('ag.usuario_id asc');
                    
                    //Reviso si tiene llamadas activas para servicios
                    $this->consulta->andWhere('ag.servicio_tipo_id = '.$this->servicioId);
                    $this->consulta->addHaving('total_agendado = 1');
                    
               
                    if((!empty($filtros['fecha_estetica']['text'])) && (!empty($filtros['fecha_asig_estetica']['text']))){
                            
                            $this->consulta->addHaving('fecha_asig_int >="'.$this->fechaCambio($filtros['fecha_estetica']['text']).'"');
                            $this->consulta->addHaving('fecha_asig_int <="'.$this->fechaCambio($filtros['fecha_asig_estetica']['text']).'"');
                            
                    }else
                    
                    if((!empty($filtros['fecha_nutricion']['text'])) && (!empty($filtros['fecha_asig_nutricion']['text']))){
                            
                            $this->consulta->addHaving('fecha_asig_int >="'.$this->fechaCambio($filtros['fecha_nutricion']['text']).'"');
                            $this->consulta->addHaving('fecha_asig_int <="'.$this->fechaCambio($filtros['fecha_asig_nutricion']['text']).'"');
                            
                    }else
                    
                    if((!empty($filtros['fecha_veterinario']['text'])) && (!empty($filtros['fecha_asig_veterinario']['text']))){
                            
                            $this->consulta->addHaving('fecha_asig_int >="'.$this->fechaCambio($filtros['fecha_veterinario']['text']).'"');
                            $this->consulta->addHaving('fecha_asig_int <="'.$this->fechaCambio($filtros['fecha_asig_veterinario']['text']).'"');
                            
                    }
                    
                    
                    
                    
                    
                    
                    
                    
                    
           }else
           if($this->Option == 7){
                     
                     $this->consulta = Doctrine_Query::create()
                            ->select('ag.usuario_id, max(ag.id) as agendado_int,ag.agendado_status_id,max(ag.fecha_asig) as fecha_asig_int')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = ag.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(llss.id) from LlamadaProgramada llss where llss.llamada_id IS NULL and llss.usuario_id = ag.usuario_id and llss.categoria_id = '.$this->servicioId.' GROUP BY llss.usuario_id  ORDER BY llss.id DESC LIMIT 0 , 1) as llamada_programada_int')
                            ->addSelect('(SELECT max(llss2.llamada_status_id) from LlamadaProgramada llss1,LLamada llss2 where llss1.llamada_id=llss2.id and llss1.llamada_id IS NOT NULL and llss1.usuario_id = ag.usuario_id and llss1.categoria_id = '.$this->servicioId.' GROUP BY llss1.usuario_id  ORDER BY llss1.id DESC LIMIT 0 , 1) as llamada_programada_resp_int')
                            ->addSelect('(SELECT count(usHas.usuario_id) from UsuarioHasProducto usHas where usHas.usuario_id = ag.usuario_id LIMIT 0 , 1) as usuario_capturado')
                            ->from('Agendado ag')
                            ->where('ag.id = (SELECT max(ags.id) from Agendado ags where ags.usuario_id = ag.usuario_id )')
                             ->addWhere('ag.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('ag.usuario_id')
                            ->orderBy('ag.usuario_id asc');;
                    
                     $this->consulta->having('usuario_capturado is not null');
                     $this->consulta->having('ag.agendado_status_id = 5');
                    
                     //Reviso si tiene llamadas activas para servicios
                     $this->consulta->addHaving('llamada_programada_int is null');
                     $this->consulta->addHaving('llamada_programada_resp_int <> 3');
                     
                     
                     $this->consulta->andWhere('ag.servicio_tipo_id = '.$this->servicioId);
                     //$this->consulta->andWhere('ser.categoria_id = 6');
                     /**/
               
                    if((!empty($filtros['fecha_estetica']['text'])) && (!empty($filtros['fecha_asig_estetica']['text']))){
                            
                            $this->consulta->addHaving('fecha_asig_int >="'.$this->fechaCambio($filtros['fecha_estetica']['text']).'"');
                            $this->consulta->addHaving('fecha_asig_int <="'.$this->fechaCambio($filtros['fecha_asig_estetica']['text']).'"');
                            
                    }else
                    
                    if((!empty($filtros['fecha_nutricion']['text'])) && (!empty($filtros['fecha_asig_nutricion']['text']))){
                            
                            $this->consulta->addHaving('fecha_asig_int >="'.$this->fechaCambio($filtros['fecha_nutricion']['text']).'"');
                            $this->consulta->addHaving('fecha_asig_int <="'.$this->fechaCambio($filtros['fecha_asig_nutricion']['text']).'"');
                            
                    }else
                    
                    if((!empty($filtros['fecha_veterinario']['text'])) && (!empty($filtros['fecha_asig_veterinario']['text']))){
                            
                            $this->consulta->addHaving('fecha_asig_int >="'.$this->fechaCambio($filtros['fecha_veterinario']['text']).'"');
                            $this->consulta->addHaving('fecha_asig_int <="'.$this->fechaCambio($filtros['fecha_asig_veterinario']['text']).'"');
                            
                    }
                    
                    
                    
                    
               
           }else
           if($this->Option == 8){
                     
                     $this->consulta = Doctrine_Query::create()
                            ->select('ag.usuario_id, max(ag.id) as agendado_int,ag.agendado_status_id,max(ag.fecha_asig) as fecha_asig_int')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = ag.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(llss.id) from LlamadaProgramada llss where llss.llamada_id IS NULL and llss.usuario_id = ag.usuario_id and llss.categoria_id = '.$this->servicioId.' GROUP BY llss.usuario_id  ORDER BY llss.id DESC LIMIT 0 , 1) as llamada_programada_int')
                            ->addSelect('(SELECT max(llss2.llamada_status_id) from LlamadaProgramada llss1,LLamada llss2 where llss1.llamada_id=llss2.id and llss1.llamada_id IS NOT NULL and llss1.usuario_id = ag.usuario_id and llss1.categoria_id = '.$this->servicioId.' GROUP BY llss1.usuario_id  ORDER BY llss1.id DESC LIMIT 0 , 1) as llamada_programada_resp_int')
                            ->addSelect('(SELECT max(usHas.usuario_id) from UsuarioHasProducto usHas where usHas.usuario_id = ag.usuario_id LIMIT 0 , 1) as usuario_capturado')
                            ->from('Agendado ag')
                            ->where('ag.id = (SELECT max(ags.id) from Agendado ags where ags.usuario_id = ag.usuario_id )')
                             ->addWhere('ag.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('ag.usuario_id')
                            ->orderBy('ag.usuario_id asc');;
                    
                     
                     $this->consulta->having('ag.agendado_status_id = 5');
                     $this->consulta->having('usuario_capturado is null');
                     
                     //Reviso si tiene llamadas activas para servicios
                     $this->consulta->addHaving('llamada_programada_int is null');
                     $this->consulta->addHaving('llamada_programada_resp_int <> 3');
                     
                     $this->consulta->leftJoin('ag.Servicio ser');
                     $this->consulta->andWhere('ser.servicio_tipo_id = '.$this->servicioId);
                     $this->consulta->andWhere('ser.categoria_id = 6');
                    
               
                     
                     
                    
               
                    if((!empty($filtros['fecha_estetica']['text'])) && (!empty($filtros['fecha_asig_estetica']['text']))){
                            
                            $this->consulta->addHaving('fecha_asig_int >="'.$this->fechaCambio($filtros['fecha_estetica']['text']).'"');
                            $this->consulta->addHaving('fecha_asig_int <="'.$this->fechaCambio($filtros['fecha_asig_estetica']['text']).'"');
                            
                    }else
                    
                    if((!empty($filtros['fecha_nutricion']['text'])) && (!empty($filtros['fecha_asig_nutricion']['text']))){
                            
                            $this->consulta->addHaving('fecha_asig_int >="'.$this->fechaCambio($filtros['fecha_nutricion']['text']).'"');
                            $this->consulta->addHaving('fecha_asig_int <="'.$this->fechaCambio($filtros['fecha_asig_nutricion']['text']).'"');
                            
                    }else
                    
                    if((!empty($filtros['fecha_veterinario']['text'])) && (!empty($filtros['fecha_asig_veterinario']['text']))){
                            
                            $this->consulta->addHaving('fecha_asig_int >="'.$this->fechaCambio($filtros['fecha_veterinario']['text']).'"');
                            $this->consulta->addHaving('fecha_asig_int <="'.$this->fechaCambio($filtros['fecha_asig_veterinario']['text']).'"');
                            
                    }
                    
                    
                    
                    
               
           }else
           if($this->Option == 11){
                     
                     $this->consulta = Doctrine_Query::create()
                            ->select('llamserv.usuario_id')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = llamserv.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(ag.usuario_id) from Agendado ag, Servicio ser where ag.usuario_id = llamserv.usuario_id and ag.id=ser.agendado_id and ser.servicio_tipo_id = '.$this->servicioId.' LIMIT 0 , 1) as agendado')
                            ->from('LlamadaServicio llamserv')
                            ->where('llamserv.categoria_id  = '.$this->servicioId)
                            ->addWhere('llamserv.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('llamserv.usuario_id');
                     
                     $this->consulta->having('agendado is null');
                     
           }else
           if($this->Option == 12){
                     
                      $this->consulta = Doctrine_Query::create()
                            ->select('ag.usuario_id, max(ag.id) as agendado_int,ag.agendado_status_id,max(ag.fecha_asig) as fecha_asig_int')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = ag.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(llss.id) from LlamadaProgramada llss where llss.llamada_id IS NULL and llss.usuario_id = ag.usuario_id and llss.categoria_id = '.$this->servicioId.' GROUP BY llss.usuario_id  ORDER BY llss.id DESC LIMIT 0 , 1) as llamada_programada_int')
                            ->addSelect('(SELECT max(llss2.llamada_status_id) from LlamadaProgramada llss1,LLamada llss2 where llss1.llamada_id=llss2.id and llss1.llamada_id IS NOT NULL and llss1.usuario_id = ag.usuario_id and llss1.categoria_id = '.$this->servicioId.' GROUP BY llss1.usuario_id  ORDER BY llss1.id DESC LIMIT 0 , 1) as llamada_programada_resp_int')
                            ->addSelect('(SELECT max(per.usuario_id) from LlamadaServicio per  where per.usuario_id=ag.usuario_id  and per.categoria_id = '.$this->servicioId.' GROUP BY per.usuario_id  LIMIT 0 , 1) as periodicidad')
                            ->from('Agendado ag')
                            ->where('ag.id = (SELECT max(ags.id) from Agendado ags where ags.usuario_id = ag.usuario_id )')
                              ->addWhere('ag.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('ag.usuario_id')
                            ->orderBy('ag.usuario_id asc');;
                    
                     
                     $this->consulta->having('ag.agendado_status_id = 5');
                     $this->consulta->having('periodicidad is null');
                     
                     //Reviso si tiene llamadas activas para servicios
                     $this->consulta->addHaving('llamada_programada_int is null');
                     $this->consulta->addHaving('llamada_programada_resp_int <> 3');
                     
                     $this->consulta->leftJoin('ag.Servicio ser');
                     $this->consulta->andWhere('ser.servicio_tipo_id = '.$this->servicioId);
                    
                     
           }else
           if($this->Option == 13){
                     
                     $this->consulta = Doctrine_Query::create()
                            ->from('UsuarioHasServicio us')
                            ->where('us.llamada_status_id = 2')
                             ->addWhere('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->addWhere('us.categoria_id='.$this->servicioId)
                            ->addWhere('us.depuracion <>1');
                    
                     
           }else
           if($this->Option == 14){
                     
                      $this->consulta = Doctrine_Query::create()
                            ->from('UsuarioHasServicio us')
                            ->where('us.llamada_status_id = 4')
                              ->addWhere('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->addWhere('us.categoria_id='.$this->servicioId)
                            ->addWhere('us.depuracion <>1');
                    
                     
           }else
           if($this->Option == 15){
                     
                      $this->consulta = Doctrine_Query::create()
                            ->from('UsuarioHasServicio us')
                            ->where('us.llamada_status_id = 3')
                            ->addWhere('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->addWhere('us.categoria_id='.$this->servicioId)
                            ->addWhere('us.depuracion <>1');
                    
                     
           }else
           if($this->Option == 16){
                     
                      $this->consulta = Doctrine_Query::create()
                            ->select('ag.usuario_id, max(ag.id) as agendado_int,ag.agendado_status_id,max(ag.fecha_asig) as fecha_asig_int')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = ag.usuario_id) as ordenado')
                            ->addSelect('(SELECT max(llss.id) from LlamadaProgramada llss where llss.llamada_id IS NULL and llss.usuario_id = ag.usuario_id and llss.categoria_id = '.$this->servicioId.' GROUP BY llss.usuario_id  ORDER BY llss.id DESC LIMIT 0 , 1) as llamada_programada_int')
                            ->addSelect('(SELECT max(llss2.llamada_status_id) from LlamadaProgramada llss1,LLamada llss2 where llss1.llamada_id=llss2.id and llss1.llamada_id IS NOT NULL and llss1.usuario_id = ag.usuario_id and llss1.categoria_id = '.$this->servicioId.' GROUP BY llss1.usuario_id  ORDER BY llss1.id DESC LIMIT 0 , 1) as llamada_programada_resp_int')
                            ->from('Agendado ag')
                            ->where('ag.id = (SELECT max(ags.id) from Agendado ags where ags.usuario_id = ag.usuario_id )')
                            ->addWhere('ag.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->groupBy('ag.usuario_id')
                            ->orderBy('ag.usuario_id asc');;
                    
                     
                     
                     //Reviso si tiene llamadas activas para servicios
                     $this->consulta->addHaving('llamada_programada_int is null');
                     $this->consulta->addHaving('llamada_programada_resp_int is null');
                     
                     $this->consulta->leftJoin('ag.Servicio ser');
                     $this->consulta->andWhere('ser.servicio_tipo_id = '.$this->servicioId);
                    
                     
                     
                     
           }else
           if($this->Option == 17){
                     
                      $this->consulta = Doctrine_Query::create()
                            ->select('us.id,us.id  as usuario_ids')
                            ->addSelect('(SELECT parr.id as ordenar FROM usuario ua, parroquia parr WHERE ua.parroquia_id = parr.id and ua.id = us.id) as ordenado')
                            ->addSelect('(SELECT count(masc.id) from Mascota masc where masc.usuario_id = us.id GROUP BY masc.usuario_id) as mascota')
                            ->from('Usuario us')
                            ->where('us.depuracion<>1')
                              ->addWhere('us.empresa_id=?',$this->getUser()->getAttribute('agente_user_empresa_id'))
                            ->having('mascota is null');
                      
           }
           
           
           
           $this->rango_total = $request->getParameter('rango_total')+0;
           
                    
                    
           
           
           
           if($set==0)
               
               
           $this->result = $this->consulta->execute();
           
           //$this->resultado = count($this->consulta->execute());
           //$this->resultado = $this->consulta;
           
           
      
    }
}
